package com.uum.admin.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.uum.admin.pojo.entity.SysPermission;
import com.baomidou.mybatisplus.extension.service.IService;
import com.uum.admin.pojo.form.PermissionGenerate;
import com.uum.admin.pojo.query.PermissionPageQuery;
import com.uum.admin.pojo.vo.PermissionVO;

import java.util.List;

public interface SysPermissionService extends IService<SysPermission> {
    /**
     * 刷新Redis缓存中角色菜单的权限规则，角色和菜单信息变更调用
     */
    boolean refreshPermRolesRules();

    /**
     * 构造条件查询权限-角色权限表
     * @param wrapper
     * @return
     */
    List<SysPermission> listPermRoles(Wrapper<SysPermission> wrapper);

    IPage<PermissionVO> page(PermissionPageQuery permissionPageQuery);

    List<SysPermission> listPermissionByMenuId(Long menuId);

    List<SysPermission> listPermissionByRoleIds(List<Long> roleIds);

    void generatePerm(PermissionGenerate generate);
}
